
** Authors: Sara Morell & Marzia Oceno
** Title: "The Intersectional Anger Gap: "How Race and Gender Condition the Impact of Anger on Participation"
** Journal: Public Opinion Quarterly
** This file recreates the following from the paper:

*******************************ANES 2020-2022 SOCIAL MEDIA*************************************

clear all
set more off
use "ANES_2020-2022_socialmedia_dataset.dta"

*********************
*** Figure 3 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_mobilization", replace)

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_protest", replace)

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_petition", replace)

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_post", replace)

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_boycott", replace)


svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_mobilization", replace)

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_protest", replace)

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_petition", replace)

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_post", replace)

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_boycott", replace)


combomarginsplot "wm_boycott" "wm_post" "wm_petition" "wm_protest" "wm_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen_w2)

combomarginsplot "bm_boycott" "bm_post" "bm_petition" "bm_protest" "bm_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen_w2)


*WAVE THREE*

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_mobilization", replace)

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_protest", replace)

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_petition", replace)

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_post", replace)

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_boycott", replace)


svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_mobilization", replace)

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_protest", replace)

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_petition", replace)

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_post", replace)

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_boycott", replace)

combomarginsplot "wm_boycott" "wm_post" "wm_petition" "wm_protest" "wm_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen_w3)

combomarginsplot "bm_boycott" "bm_post" "bm_petition" "bm_protest" "bm_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen_w3)


gr combine whitemen_w2 blackmen_w2 whitemen_w3 blackmen_w3, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)

*********************
*** Figure 4 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_mobilization", replace)

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_protest", replace)

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_petition", replace)

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_post", replace)

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_boycott", replace)


svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_mobilization", replace)

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_protest", replace)

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_petition", replace)

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_post", replace)

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_boycott", replace)


combomarginsplot "ww_boycott" "ww_post" "ww_petition" "ww_protest" "ww_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen_w2)

combomarginsplot "bw_boycott" "bw_post" "bw_petition" "bw_protest" "bw_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen_w2)

*WAVE THREE*

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_mobilization", replace)

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_protest", replace)

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_petition", replace)

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_post", replace)

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_boycott", replace)


svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_mobilization", replace)

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_protest", replace)

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_petition", replace)

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_post", replace)

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_boycott", replace)


combomarginsplot "ww_boycott" "ww_post" "ww_petition" "ww_protest" "ww_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen_w3)

combomarginsplot "bw_boycott" "bw_post" "bw_petition" "bw_protest" "bw_mobilization", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Political Mobilization Scale", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen_w3)


gr combine whitewomen_w2 blackwomen_w2 whitewomen_w3 blackwomen_w3, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)


*********************************APPENDIX****************************************

*********************
*** Table B1 ***
*********************

svyset[pweight = weight_post]

sum angryw2 if gender==1 & Race==1 [aw=weight_post]
sum angryw2 if gender==0 & Race==1 [aw=weight_post]
sum angryw2 if gender==1 & Race==2 [aw=weight_post]
sum angryw2 if gender==0 & Race==2 [aw=weight_post]

svy: mean angryw2 if gender==1 & Race==1 | gender==1 & Race==2, over(Race) 
lincom _b[c.angryw2@1bn.Race] - _b[c.angryw2@2.Race]

svy: mean angryw2 if gender==0 & Race==1 | gender==0 & Race==2, over(Race
lincom _b[c.angryw2@1bn.Race] - _b[c.angryw2@2.Race]


svyset[pweight = w3weight]

sum angryw3 if gender==1 & Race==1 [aw=w3weight]
sum angryw3 if gender==0 & Race==1 [aw=w3weight]
sum angryw3 if gender==1 & Race==2 [aw=w3weight]
sum angryw3 if gender==0 & Race==2 [aw=w3weight]

svy: mean angryw3 if gender==1 & Race==1 | gender==1 & Race==2, over(Race)
lincom _b[c.angryw3@1bn.Race] - _b[c.angryw3@2.Race]

svy: mean angryw3 if gender==0 & Race==1 | gender==0 & Race==2, over(Race)
lincom _b[c.angryw3@1bn.Race] - _b[c.angryw3@2.Race]

*********************
*** Table B2 ***
*********************

svyset[pweight = weight_post]

sum anxiousw2 if gender==1 & Race==1 [aw=weight_post]
sum anxiousw2 if gender==0 & Race==1 [aw=weight_post]
sum anxiousw2 if gender==1 & Race==2 [aw=weight_post]
sum anxiousw2 if gender==0 & Race==2 [aw=weight_post]

svy: mean anxiousw2 if gender==1 & Race==1 | gender==1 & Race==2, over(Race) 
lincom _b[c.anxiousw2@1bn.Race] - _b[c.anxiousw2@2.Race]

svy: mean anxiousw2 if gender==0 & Race==1 | gender==0 & Race==2, over(Race) 
lincom _b[c.anxiousw2@1bn.Race] - _b[c.anxiousw2@2.Race]


svyset[pweight = w3weight]

sum anxiousw3 if gender==1 & Race==1 [aw=w3weight]
sum anxiousw3 if gender==0 & Race==1 [aw=w3weight]
sum anxiousw3 if gender==1 & Race==2 [aw=w3weight]
sum anxiousw3 if gender==0 & Race==2 [aw=w3weight]

svy: mean anxiousw3 if gender==1 & Race==1 | gender==1 & Race==2, over(Race)
lincom _b[c.anxiousw3@1bn.Race] - _b[c.anxiousw3@2.Race]

svy: mean anxiousw3 if gender==0 & Race==1 | gender==0 & Race==2, over(Race)
lincom _b[c.anxiousw3@1bn.Race] - _b[c.anxiousw3@2.Race]

*********************
*** Table C5 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabC5.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabC5.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabC5.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabC5.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabC5.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C6 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabC6.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabC6.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabC6.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabC6.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabC6.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C7 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabC7.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabC7.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabC7.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabC7.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabC7.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C8 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabC8.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabC8.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabC8.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabC8.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabC8.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C9 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabC9.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabC9.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabC9.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabC9.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabC9.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C10 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabC10.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabC10.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabC10.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabC10.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabC10.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C11 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabC11.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabC11.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabC11.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabC11.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 angryw2 angryw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabC11.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C12 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabC12.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabC12.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabC12.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabC12.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 angryw3 angryw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabC12.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D9 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD9.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD9.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD9.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD9.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD9.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D10 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD10.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD10.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD10.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD10.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 1
outreg2 using tabD10.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D11 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD11.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD11.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD11.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD11.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD11.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D12 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD12.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD12.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD12.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD12.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 0 & Race == 2
outreg2 using tabD12.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D13 ***
*********************

svyset[pweight = weight_post]
 
svy: regress campaignengaged_2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD13.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD13.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD13.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD13.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD13.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D14 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD14.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD14.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD14.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD14.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 1
outreg2 using tabD14.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D15 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD15.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD15.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD15.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD15.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 c.angryw2##c.polintw2 angryw1 partyidw2 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD15.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D16 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD16.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD16.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD16.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD16.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 c.angryw3##c.polintw3 angryw2 partyidw3 ageN south working education income if gender == 1 & Race == 2
outreg2 using tabD16.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Figure D3 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]

svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(anxiousw2) saving("wm_mobilization_fear", replace)

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(anxiousw2) saving("wm_protest_fear", replace)

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(anxiousw2) saving("wm_petition_fear", replace)

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(anxiousw2) saving("wm_post_fear", replace)

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(anxiousw2) saving("wm_boycott_fear", replace)


svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(anxiousw2) saving("bm_mobilization_fear", replace)

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(anxiousw2) saving("bm_protest_fear", replace)

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(anxiousw2) saving("bm_petition_fear", replace)

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(anxiousw2) saving("bm_post_fear", replace)

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(anxiousw2) saving("bm_boycott_fear", replace)


combomarginsplot "wm_boycott_fear" "wm_post_fear" "wm_petition_fear" "wm_protest_fear" "wm_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Men") ytitle("") name(whitemen_fearw2)

combomarginsplot "bm_boycott_fear" "bm_post_fear" "bm_petition_fear" "bm_protest_fear" "bm_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Men") ytitle("") name(blackmen_fearw2)


*WAVE THREE*

svyset[pweight = w3weight]

svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(anxiousw3) saving("wm_mobilization_fear", replace)

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(anxiousw3) saving("wm_protest_fear", replace)

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(anxiousw3) saving("wm_petition_fear", replace)

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(anxiousw3) saving("wm_post_fear", replace)

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(anxiousw3) saving("wm_boycott_fear", replace)


svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(anxiousw3) saving("bm_mobilization_fear", replace)

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(anxiousw3) saving("bm_protest_fear", replace)

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(anxiousw3) saving("bm_petition_fear", replace)

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(anxiousw3) saving("bm_post_fear", replace)

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(anxiousw3) saving("bm_boycott_fear", replace)


combomarginsplot "wm_boycott_fear" "wm_post_fear" "wm_petition_fear" "wm_protest_fear" "wm_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Men") ytitle("") name(whitemen_fearw3)

combomarginsplot "bm_boycott_fear" "bm_post_fear" "bm_petition_fear" "bm_protest_fear" "bm_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Men") ytitle("") name(blackmen_fearw3)

gr combine whitemen_fearw2 blackmen_fearw2 whitemen_fearw3 blackmen_fearw3, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)


*********************
*** Figure D4 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]
 
svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(anxiousw2) saving("ww_mobilization_fear", replace)

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(anxiousw2) saving("ww_protest_fear", replace)

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(anxiousw2) saving("ww_petition_fear", replace)

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(anxiousw2) saving("ww_post_fear", replace)

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(anxiousw2) saving("ww_boycott_fear", replace)


svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(anxiousw2) saving("bw_mobilization_fear", replace)

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(anxiousw2) saving("bw_protest_fear", replace)

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(anxiousw2) saving("bw_petition_fear", replace)

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(anxiousw2) saving("bw_post_fear", replace)

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(anxiousw2) saving("bw_boycott_fear", replace)


combomarginsplot "ww_boycott_fear" "ww_post_fear" "ww_petition_fear" "ww_protest_fear" "ww_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Women") ytitle("") name(whitewomen_fearw2)

combomarginsplot "bw_boycott_fear" "bw_post_fear" "bw_petition_fear" "bw_protest_fear" "bw_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Women") ytitle("") name(blackwomen_fearw2)


*WAVE THREE*

svyset[pweight = w3weight]
 
svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(anxiousw3) saving("ww_mobilization_fear", replace)

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(anxiousw3) saving("ww_protest_fear", replace)

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(anxiousw3) saving("ww_petition_fear", replace)

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(anxiousw3) saving("ww_post_fear", replace)

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(anxiousw3) saving("ww_boycott_fear", replace)


svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(anxiousw3) saving("bw_mobilization_fear", replace)

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(anxiousw3) saving("bw_protest_fear", replace)

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(anxiousw3) saving("bw_petition_fear", replace)

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(anxiousw3) saving("bw_post_fear", replace)

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(anxiousw3) saving("bw_boycott_fear", replace)


combomarginsplot "ww_boycott_fear" "ww_post_fear" "ww_petition_fear" "ww_protest_fear" "ww_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Women") ytitle("") name(whitewomen_fearw3)

combomarginsplot "bw_boycott_fear" "bw_post_fear" "bw_petition_fear" "bw_protest_fear" "bw_mobilization_fear", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Women") ytitle("") name(blackwomen_fearw3)

gr combine whitewomen_fearw2 blackwomen_fearw2 whitewomen_fearw3 blackwomen_fearw3, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)

*********************
*** Table D29 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabD29.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabD29.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabD29.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabD29.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
outreg2 using tabD29.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D30 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabD30.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabD30.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabD30.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabD30.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
outreg2 using tabD30.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D31 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabD31.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabD31.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabD31.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabD31.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
outreg2 using tabD31.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D32 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabD32.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabD32.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabD32.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabD32.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
outreg2 using tabD32.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D33 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabD33.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabD33.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabD33.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabD33.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
outreg2 using tabD33.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D34 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabD34.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabD34.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabD34.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabD34.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
outreg2 using tabD34.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D35 ***
*********************

svyset[pweight = weight_post]

svy: regress campaignengaged_2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabD35.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabD35.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabD35.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabD35.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw2 anxiousw2 anxiousw1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
outreg2 using tabD35.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D36 ***
*********************

svyset[pweight = w3weight]

svy: regress campaignengaged_3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabD36.doc, ctitle(Non-conventional partic.) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress protestw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabD36.doc, ctitle(Attend protest) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress petitionw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabD36.doc, ctitle(Sign petition) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress postw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabD36.doc, ctitle(Post online) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress boycottw3 anxiousw3 anxiousw2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
outreg2 using tabD36.doc, ctitle(Boycott) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append


*********************
*** Figure D7 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_mobilization_3emot", replace)

svy: regress protestw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_protest_3emot", replace)

svy: regress petitionw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_petition_3emot", replace)

svy: regress postw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_post_3emot", replace)

svy: regress boycottw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 1
margins, dydx(angryw2) saving("wm_boycott_3emot", replace)


svy: regress campaignengaged_2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_mobilization_3emot", replace)

svy: regress protestw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_protest_3emot", replace)

svy: regress petitionw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_petition_3emot", replace)

svy: regress postw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_post_3emot", replace)

svy: regress boycottw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 0 & Race == 2
margins, dydx(angryw2) saving("bm_boycott_3emot", replace)


combomarginsplot "wm_boycott_3emot" "wm_post_3emot" "wm_petition_3emot" "wm_protest_3emot" "wm_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen_w2_3emot)

combomarginsplot "bm_boycott_3emot" "bm_post_3emot" "bm_petition_3emot" "bm_protest_3emot" "bm_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen_w2_3emot)

*WAVE THREE*

svyset[pweight = w3weight]
 
svy: regress campaignengaged_3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_mobilization_3emot", replace)

svy: regress protestw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_protest_3emot", replace)

svy: regress petitionw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_petition_3emot", replace)

svy: regress postw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_post_3emot", replace)

svy: regress boycottw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 1
margins, dydx(angryw3) saving("wm_boycott_3emot", replace)


svy: regress campaignengaged_3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_mobilization_3emot", replace)

svy: regress protestw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_protest_3emot", replace)

svy: regress petitionw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_petition_3emot", replace)

svy: regress postw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_post_3emot", replace)

svy: regress boycottw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 0 & Race == 2
margins, dydx(angryw3) saving("bm_boycott_3emot", replace)


*Plots -- White men and Black men*
combomarginsplot "wm_boycott_3emot" "wm_post_3emot" "wm_petition_3emot" "wm_protest_3emot" "wm_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen_w3_3emot)

combomarginsplot "bm_boycott_3emot" "bm_post_3emot" "bm_petition_3emot" "bm_protest_3emot" "bm_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen_w3_3emot)

gr combine whitemen_w2_3emot blackmen_w2_3emot whitemen_w3_3emot blackmen_w3_3emot, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)

*********************
*** Figure D8 ***
*********************

*WAVE TWO*

svyset[pweight = weight_post]

svy: regress campaignengaged_2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_mobilization_3emot", replace)

svy: regress protestw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_protest_3emot", replace)

svy: regress petitionw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_petition_3emot", replace)

svy: regress postw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_post_3emot", replace)

svy: regress boycottw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 1
margins, dydx(angryw2) saving("ww_boycott_3emot", replace)


svy: regress campaignengaged_2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_mobilization_3emot", replace)

svy: regress protestw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_protest_3emot", replace)

svy: regress petitionw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_petition_3emot", replace)

svy: regress postw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_post_3emot", replace)

svy: regress boycottw2 angryw2 angryw1 anxiousw2 anxiousw1 positivew2 positivew1 partyidw2 ageN south working education income polintw2 if gender == 1 & Race == 2
margins, dydx(angryw2) saving("bw_boycott_3emot", replace)


combomarginsplot "ww_boycott_3emot" "ww_post_3emot" "ww_petition_3emot" "ww_protest_3emot" "ww_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen_w2_3emot)

combomarginsplot "bw_boycott_3emot" "bw_post_3emot" "bw_petition_3emot" "bw_protest_3emot" "bw_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen_w2_3emot)


*WAVE THREE*

svyset[pweight = w3weight]

svy: regress campaignengaged_3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_mobilization_3emot", replace)

svy: regress protestw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_protest_3emot", replace)

svy: regress petitionw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_petition_3emot", replace)

svy: regress postw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_post_3emot", replace)

svy: regress boycottw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 1
margins, dydx(angryw3) saving("ww_boycott_3emot", replace)


svy: regress campaignengaged_3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_mobilization_3emot", replace)

svy: regress protestw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_protest_3emot", replace)

svy: regress petitionw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_petition_3emot", replace)

svy: regress postw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_post_3emot", replace)

svy: regress boycottw3 angryw3 angryw2 anxiousw3 anxiousw2 positivew3 positivew2 partyidw3 ageN south working education income polintw3 if gender == 1 & Race == 2
margins, dydx(angryw3) saving("bw_boycott_3emot", replace)


combomarginsplot "ww_boycott_3emot" "ww_post_3emot" "ww_petition_3emot" "ww_protest_3emot" "ww_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen_w3_3emot)

combomarginsplot "bw_boycott_3emot" "bw_post_3emot" "bw_petition_3emot" "bw_protest_3emot" "bw_mobilization_3emot", ylabel(1 "Boycott" 2 "Post Online" 3 "Sign Petition" 4 "Attend Protest" 5 "Non-Electoral Participation", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen_w3_3emot)


gr combine whitewomen_w2_3emot blackwomen_w2_3emot whitewomen_w3_3emot blackwomen_w3_3emot, rows(2) xsize(7) ysize(3) iscale(.9) scheme(plotplain)

